// packageA/pages/ShoppingIM/ShoppingIM.ts
import { getProductById } from '../../../utils/productData';
import request from '../../../utils/request';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    productId: '',
    product: null as any,
    showVideoModal: false,
    isFavorite: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options: any) {
    if (options.id) {
      const productId = parseInt(options.id);
      console.log('IM产品ID:',productId);
      
      try {
        // 尝试从后端获取商品详情
        const res: any = await request.geyGoodsById(productId);
        
        if (res && res.data) {
          this.setData({
            productId: options.id,
            product: res.data
          });
        } else {
          // 后端没有数据，使用本地数据
          const localProduct = getProductById(productId);
          this.setData({
            productId: options.id,
            product: localProduct
          });
        }
      } catch (error) {
        // 加载失败时使用本地数据
        const localProduct = getProductById(productId);
        this.setData({
          productId: options.id,
          product: localProduct
        });
      }
    }
  },

  /**
   * 解析 tags JSON 字符串
   */
  parseTags(tagsString: string): string[] {
    try {
      return JSON.parse(tagsString || '[]');
    } catch (e) {
      console.error('解析 tags 失败:', e);
      return [];
    }
  },

  /**
   * 点击图片显示视频
   */
  showVideo() {
    this.setData({
      showVideoModal: true
    });
  },

  /**
   * 关闭视频弹窗
   */
  closeVideoModal() {
    this.setData({
      showVideoModal: false
    });
  },

  /**
   * 阻止事件冒泡
   */
  stopPropagation() {
    // 阻止事件冒泡，防止点击视频内容区域关闭弹窗
  },

  /**
   * 切换收藏状态
   */
  toggleFavorite() {
    this.setData({
      isFavorite: !this.data.isFavorite
    });
    wx.showToast({
      title: this.data.isFavorite ? '已收藏' : '已取消收藏',
      icon: 'success',
      duration: 1500
    });
  },

  /**
   * 联系客服
   */
  contactService() {
    // 获取当前商品ID
    const productId = this.data.productId;
    
    // 跳转到ServiceChat页面，并传递商品ID作为参数
    wx.navigateTo({
      url: `/packageA/pages/ServiceChat/ServiceChat?productId=${productId}`
    });
  },

  /**
   * 点击购买
   */
  buyNow() {
    // wx.showToast({
    //   title: '跳转到购买页面',
    //   icon: 'success',
    //   duration: 1500
    // });
    const goodsId = parseInt(this.data.productId)
    request.createPayOrder(goodsId, 1).then((res: any) => { 
      console.log('创建支付订单:',res);
      if(res.code === 200){
        const paymentData = res.data;
        //确保字段存在且正确
        if(!paymentData || !paymentData.appId || !paymentData.timeStamp || !paymentData.nonceStr || !paymentData.package || !paymentData.signType || !paymentData.paySign){
          console.error('支付数据不完整，请检查数据');
          return;
        }
        wx.requestPayment({
          ...paymentData,
          success: (res: any) => { 
            console.log('支付成功:',res);
          },
          fail: (res: any) => { 
            console.error('支付失败:',res);
            if(res.errMsg.includes('cancel')){
              wx.showToast({
                title: '已取消支付',
                icon: 'none',
                duration: 2000
              });
            }else{
              wx.showToast({
                title: '支付失败',
                icon: 'none',
                duration: 2000
              });
            }
          },
          complete: () => { 
            console.log('支付完成');
          }
        });
      }else{
        console.error('创建支付订单失败:',res);
        wx.showToast({
          title: '创建支付订单失败',
          icon: 'none',
          duration: 2000
        });
      }

    });

  },

  /**
   * 视频播放事件
   */
  onVideoPlay() {
    console.log('视频开始播放');
  },

  /**
   * 视频错误事件
   */
  onVideoError(e: any) {
    console.error('视频播放错误:', e.detail.errMsg);
    wx.showToast({
      title: '视频加载失败',
      icon: 'none',
      duration: 2000
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})